package com.bjx.flow.mmx.task;

import com.bjx.flow.mmx.bean.MmxNextNodeData;
import com.bjx.flow.mmx.bean.MmxNodeData;

import java.util.List;

/**
 * @desc: 流程任务处理抽象类
 * @author: liushuai
 * @date: 2023/5/22 17:38
 */
public abstract class MmxAbstractTaskHandler {

    /**
     * 模拟执行器
     * @param nextNodeData
     * @return: com.bjx.flow.mmx.bean.NodeData
     * @Author: liushuai
     * @Date: 2023/5/22 17:42
     */
    public abstract List<MmxNodeData> simulationExecute(MmxNextNodeData nextNodeData);

    /**
     * 通过
     * @param nextNodeData
     * @return: null
     * @Author: liushuai
     * @Date: 2023/5/22 17:43
     */
    public abstract void passExecute(MmxNextNodeData nextNodeData);

    /**
     * 驳回
     * @param nextNodeData
     * @return: null
     * @Author: liushuai
     * @Date: 2023/5/22 17:43
     */
    public abstract void rejectExecute(MmxNextNodeData nextNodeData);

    /**
     * 退回
     * @param nextNodeData
     * @return: null
     * @Author: liushuai
     * @Date: 2023/5/22 17:43
     */
    public abstract void sendBackExecute(MmxNextNodeData nextNodeData);

    /**
     * 委派
     * @param nextNodeData
     * @Author: liushuai
     * @Date: 2023/5/22 17:51
     */
    public abstract void  appointExecute(MmxNextNodeData nextNodeData);



}
